package com.fdb.efp.nls.service.dao;

import java.util.List;

import com.fdb.efp.nls.service.domain.queue.NlsQueueTask;
import com.fdb.efp.nls.service.vo.queue.NlsQueueTaskVO;
import org.apache.ibatis.annotations.Param;

/**
 * DAO interface:网贷任务队列
 * 
 * @author huangwb
 * @since 2018年12月27日 上午8:33:47
 * @version 1.0
 */
public interface NlsQueueTaskDao {

	public int insertNlsQueueTask(NlsQueueTask nlsQueueTask);

	public int deleteByPk(NlsQueueTask nlsQueueTask);

	public int updateByPk(NlsQueueTask nlsQueueTask);

	public NlsQueueTask queryByPk(NlsQueueTask nlsQueueTask);

	public List<NlsQueueTask> queryAllOwnerByPage(NlsQueueTaskVO nlsQueueTask);

	public List<NlsQueueTask> queryAllCurrOrgByPage(NlsQueueTaskVO nlsQueueTask);

	public List<NlsQueueTask> queryAllCurrDownOrgByPage(NlsQueueTaskVO nlsQueueTask);

	public List<NlsQueueTask> queryAllCurrOwnerPrdByPage(NlsQueueTaskVO nlsQueueTask);


	/**
	 * 查询待执行的队列任务表
	 * 
	 * @param queueTaskState
	 * @return
	 * @author huangwb
	 * @since 2018年12月27日 下午7:15:24
	 * @version 1.0
	 */
	public List<String> queryExecutoryQueueTask(@Param("queueTaskState") String queueTaskState);

	/**
	 * 根据申请流水号和待执行状态查询队列任务
	 * 
	 * @param queryNlsQueueTask
	 * @return
	 * @author huangwb
	 * @since 2018年12月27日 下午9:57:57
	 * @version 1.0
	 */
	public NlsQueueTask queryLockedExecutoryQueueTask(NlsQueueTask queryNlsQueueTask);

	/**
	 * 查询挂起的队列任务表
	 * 
	 * @param queueTaskState
	 * @return
	 * @author huangwb
	 * @since 2019年1月2日 下午9:02:13
	 * @version 1.0
	 */
	public List<String> queryHangQueueTask(@Param("queueTaskState") String queueTaskState);

	/**
	 * 根据申请流水号和挂起状态查询队列任务
	 * 
	 * @param queryNlsQueueTask
	 * @return
	 * @author huangwb
	 * @since 2019年1月2日 下午9:02:21
	 * @version 1.0
	 */
	public NlsQueueTask queryLockedHangQueueTask(NlsQueueTask queryNlsQueueTask);
	
	/**
	  * 分页查询列表数据
	  * @param nlsQueueTaskVo
	  * @return
	  * @author qiuyf
	  * @since 2019年1月10日 下午5:43:15
	  * @version 1.0
	 */
	public List<NlsQueueTask> queryListByConditionByPage(NlsQueueTaskVO nlsQueueTaskVo);

}
